package com.alks.function.service.chengKong;

import com.alks.entity.data.entity.*;
import com.alks.entity.data.response.ResponseInfo;
import com.alks.function.data.dto.chengKong.assort.YfMtlTypeNewDto;
import com.alks.function.data.request.chengKong.MatterRequest;
import com.alks.function.data.request.chengKong.YfMtlTypeDetailRequest;

import java.util.List;
import java.util.Map;

public interface MaterialManagementService {

    List<YfMtlTypeNewDto> getAssortList();

    ResponseInfo getAssortAdd(YfMtlTypeNew mtlTypeNew);

    ResponseInfo getAssortDel(String typeNo);

    ResponseInfo getAssortByTypeNo(String typeNo);

    ResponseInfo getAssortUpdate(YfMtlTypeNew yfMtlTypeNew);

    ResponseInfo getAssortUMoveUp(String typeNo);

    ResponseInfo getAssortUMoveDown(String typeNo);

    ResponseInfo getMaterialPropertiesList();

    ResponseInfo getMaterialPropertiesAdd(YfMtlProperty yfMtlProperty);

    ResponseInfo getMaterialPropertiesDel(String mtlProperty);

    ResponseInfo getMaterialPropertiesSpecsList(String mtlProperty);

    ResponseInfo getMaterialPropertiesSpecAdd(YfMtlPropertyDetail yfMtlPropertyDetail);

    ResponseInfo getMaterialPropertiesSpecUpdate(YfMtlPropertyDetail detail);

    ResponseInfo getMaterialPropertiesSpecDel(String mtlProperty, String mtlSpec);

    ResponseInfo getWideDefinitionList();

    ResponseInfo getWideDefinitionAdd(YfMtlSpec yfMtlSpec);

    ResponseInfo getWideDefinitionUpdate(YfMtlSpec yfMtlSpec);

    ResponseInfo getWideDefinitionDel(String mtlUnit);

    ResponseInfo getUnitList();

    ResponseInfo getUnitAdd(YfMtlUnit yfMtlUnit);

    ResponseInfo updateUnit(YfMtlUnit yfMtlUnit);

    ResponseInfo getUnitDel(String mtlUnit);

    ResponseInfo getFitList();

    ResponseInfo getFitAdd(YfMtlPrdType yfMtlPrdType);

    ResponseInfo getFitUpdate(YfMtlPrdType yfMtlPrdType);

    ResponseInfo getFitDel(String prdType);

    ResponseInfo getTypeDetail(MatterRequest request);

    ResponseInfo getTypeDetailAdd(YfMtlTypeDetail yfMtlTypeDetail);

    ResponseInfo getTypeDetailUpdate(Map<String, YfMtlTypeDetailRequest> request);

    ResponseInfo getTypeDetailDel(YfMtlTypeDetailRequest request);

}
